﻿using System.Windows;
using System.Windows.Input;
using InnvoiceActual.Logica.GestorDB;
using InnvoiceActual.Logica.GestorObject;
using InnvoiceActual.Ws.Articulos.Articulos;
using InnvoiceActual.Ws.Articulos.Categorias;
using InnvoiceActual.Ws.Articulos.SubArticulos;
using InnvoiceActual.Ws.Clientes;
using InnvoiceActual.Ws.Empresa;
using InnvoiceActual.Ws.Remitos;
using InnvoiceActual.Ws.Facturas;


namespace InnvoiceActual
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        #region Windows Methods

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            ventana_cliente();
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }

        private void button3_Click(object sender, RoutedEventArgs e)
        {
            ventana_empresa();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {

        }

        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key.ToString().ToUpper())
            {
                case "F1":
                    break;
                case "F2":
                    ventana_empresa();
                    break;
                case "F3":
                    MostrarCategoria();
                    break;
                case "F4":
                    MostrarArticulo();
                    break;
                case "F5":
                    ventana_cliente();
                    break;
                case "F6":
                    MostrarSubArticulos();
                    break;
                case "F7":
                    MostrarRemitos();
                    break;
                case "F8":
                    ventana_factura();
                    break;
                case "F9":
                    break;
                case "ESCAPE":
                    this.Close();
                    break;
                default:
                    return;
            }
        }

        private void btnArticulo_Click(object sender, RoutedEventArgs e)
        {
            MostrarArticulo();
        }

        private void btnMostrarCategoria_Click(object sender, RoutedEventArgs e)
        {
            MostrarCategoria();
        }

        private void btnMostrarSubArticulo_Click(object sender, RoutedEventArgs e)
        {
            MostrarSubArticulos();
        }

        private void btnAltaRemito_Click(object sender, RoutedEventArgs e)
        {
            MostrarRemitos();
        }


        private void mainToolBar_Loaded(object sender, RoutedEventArgs e)
        {
            //ToolBar toolBar = sender as ToolBar;
            //var overflowGrid = toolBar.Template.FindName("OverflowGrid", toolBar) as FrameworkElement;
            //if (overflowGrid != null)
            //{
            //    overflowGrid.Visibility = Visibility.Collapsed;
            //}
        }

        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            //MenuItem _itemMenu = e.Source as MenuItem;
            //switch (_itemMenu.Name)
            //{
            //    case "EMPRESA":
            //        break;
            //    case "COPIAS":
            //        break;
            //    case "CONDPAGO":
            //        break;
            //    case "PAIS":
            //        ventana_paises();
            //        break;
            //    case "PROV":
            //        ventana_provincias();
            //        break;
            //    case "LOC":
            //        ventana_Localidades();
            //        break;
            //    case "DOC":
            //        break;
            //    case "CONTRIB":
            //        break;
            //    case "IVA":
            //        break;
            //    case "FAC":
            //        break;
            //    case "SALIR":
            //        this.Close();
            //        break;
            //    default:
            //        break;
            //}
        }

        #endregion

        #region Auxiliar Methods

        private void MostrarCategoria()
        {
            MostrarCategoria mostrarCategoria = new MostrarCategoria();
            mostrarCategoria.Show();
        }

        private void MostrarArticulo()
        {
            MostrarArticulo mostrarArticulo = new MostrarArticulo();
            mostrarArticulo.Show();
        }

        private void MostrarSubArticulos()
        {
            MostrarSubArticulos mostrarSubArticulo = new MostrarSubArticulos();
            mostrarSubArticulo.Show();
        }

        private void MostrarRemitos()
        {
            ListadoRemitos listadoRemitos = new ListadoRemitos();
            listadoRemitos.Show();
        }

        private void AplicarEfecto(Window win)
        {
            var objBlur = new System.Windows.Media.Effects.BlurEffect();
            objBlur.Radius = 5;
            win.Effect = objBlur;
        }

        private void QuitarEfecto(Window win)
        {
            win.Effect = null;
        }

        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            const string msg = "Está usted seguro que desea salir de la aplicación?";
            const string titulo = "Cerrar la aplicación";
            var result = MessageBox.Show(msg, titulo, MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (result == MessageBoxResult.No)
            {
                e.Cancel = true;
            }
        }

        private void ventana_empresa()
        {
            EmpresaDB auxEmpresa = new EmpresaDB();
            EmpresaWS empresa = new EmpresaWS(auxEmpresa.datosEmpresa());
            empresa.ShowInTaskbar = false;
            empresa.Owner = this; AplicarEfecto(this);
            empresa.ShowDialog();
            bool?
            resultado = empresa.DialogResult;
            if (resultado != null)
            {
                if (resultado == false)
                {
                    QuitarEfecto(this);
                }
            }
        }

        private void ventana_paises()
        {
            //Paises auxPais = new  Paises();
            //auxPais.ShowInTaskbar = false;
            //auxPais.Owner = this; 
            //AplicarEfecto(this);
            //auxPais.ShowDialog();
            //bool? 
            //resultado = auxPais.DialogResult;            
            //if (resultado != null)
            //{
            //    if (resultado == false)
            //    {
            //        QuitarEfecto(this);
            //    }
            //}
        }

        private void ventana_provincias() 
        {
            //WProvincias auxProvincia = new WProvincias();
            //auxProvincia.ShowInTaskbar = false;
            //auxProvincia.Owner = this;
            //AplicarEfecto(this);
            //auxProvincia.ShowDialog();
            //bool?
            //resultado = auxProvincia.DialogResult;
            //if (resultado != null)
            //{
            //    if (resultado == false)
            //    {
            //        QuitarEfecto(this);
            //    }
            //}
        }

        private void ventana_Localidades()
        {
            //WLocalidades auxLocalidades = new WLocalidades();
            //auxLocalidades.ShowInTaskbar = false;
            //auxLocalidades.Owner = this;
            //AplicarEfecto(this);
            //auxLocalidades.ShowDialog();
            //bool?
            //resultado = auxLocalidades.DialogResult;
            //if (resultado != null)
            //{
            //    if (resultado == false)
            //    {
            //        QuitarEfecto(this);
            //    }
            //}
        }

        private void ventana_cliente()
        {
            DetalleClienteWS miVentanaCliente = new DetalleClienteWS();
            miVentanaCliente.ShowInTaskbar = false;
            miVentanaCliente.Owner = this; AplicarEfecto(this);
            miVentanaCliente.ShowDialog();
            bool?
            resultado = miVentanaCliente.DialogResult;
            if (resultado != null)
            {
                if (resultado == false)
                {
                    QuitarEfecto(this);
                }
            }
        }

        private void ventana_factura()
        {
            ListadoFacturas myWsFacturas = new ListadoFacturas();
            myWsFacturas.ShowInTaskbar = false;
            myWsFacturas.Owner = this; AplicarEfecto(this);
            myWsFacturas.ShowDialog();
            bool?
            resultado = myWsFacturas.DialogResult;
            if (resultado != null)
            {
                if (resultado == false)
                {
                    QuitarEfecto(this);
                }
            }
        }


        private void Window_Activated(object sender, System.EventArgs e)
        {
            EmpresaCS auxDatosEmpresa = EmpresaCS.Instance;
            lblDatosEmpresa.Content = auxDatosEmpresa.VerDatosEmpresa();
        }

        #endregion

        private void MenuItem_Click_1(object sender, RoutedEventArgs e)
        {

        }

        private void Window_Loaded_1(object sender, RoutedEventArgs e)
        {            
            EmpresaDB auxEmpresaDB = new EmpresaDB();
            EmpresaCS auxDatosEmpresa = auxEmpresaDB.datosEmpresa();
            while (auxDatosEmpresa.ExistenDatos == false) 
            {
                ventana_empresa();
                auxDatosEmpresa = auxEmpresaDB.datosEmpresa();
            }
            lblDatosEmpresa.Content = auxDatosEmpresa.VerDatosEmpresa();
        }

        private void button3_Click_1(object sender, RoutedEventArgs e)
        {
            ventana_factura();
        }


    }
}
